Enable removal of UNIX lock files#408
Merged
gaborbernat merged 1 commit intotox-dev:mainfrom Feb 12, 2026
Merged
Conversation
Contributor
Author
I can add a test that confirm the that lock file is deleted. Added a test the races mentioned do not pose a problem is harder. Even if we added some intense stress tests that right conditions for the race might not happen. Hopefully the former is enough? |
sbc100
added a commit
to emscripten-core/emscripten
that referenced
this pull request
Apr 2, 2025
See tox-dev/filelock#31 and https://stackoverflow.com/a/51070775. Without this change the `cache/symbol_lists` directory ends up full of many lock files that might never get cleaned up (At least since #24029 landed). I'm also sending this change upstream: tox-dev/filelock#408
gaborbernat
previously approved these changes
Apr 8, 2025
sbc100
commented
Apr 8, 2025
|
@gaborbernat When can we expect this to be merged and released? |
Member
Not until we address this. |
69fd0b1 to
4bdc6ec
Compare
Lock files are now cleaned up when released, preventing orphan .lock files from accumulating. The acquire/release cycle handles three race conditions: - Sticky-bit directories (tox-dev#317): O_CREAT on a file owned by another user raises PermissionError, so we fall back to opening without O_CREAT when the file already exists. - Deleted-before-open: if the file vanishes between exists() and os.open(), the caller's retry loop recreates it. - Deleted-before-flock: if another process unlinks the file between our open() and flock(), st_nlink==0 detects the stale inode and the retry loop starts fresh. Fixes tox-dev#31.
4bdc6ec to
ac2c6d6
Compare
ansibuddy
pushed a commit
to ansible/molecule
that referenced
this pull request
Feb 16, 2026
This PR contains the following updates: | Package | Type | Update | Change | Pending | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) | |---|---|---|---|---|---|---| | [astral-sh/ruff-pre-commit](https://redirect.github.com/astral-sh/ruff-pre-commit) | repository | patch | `v0.15.0` → `v0.15.1` | |  |  | | [astral-sh/uv-pre-commit](https://redirect.github.com/astral-sh/uv-pre-commit) | repository | patch | `0.10.0` → `0.10.2` | |  |  | | [biomejs/pre-commit](https://redirect.github.com/biomejs/pre-commit) | repository | patch | `v2.3.14` → `v2.3.15` | |  |  | | [coverage](https://redirect.github.com/coveragepy/coveragepy) | dependency-groups | patch | `7.13.3` → `7.13.4` | |  |  | | [filelock](https://redirect.github.com/tox-dev/py-filelock) | dependency-groups | minor | `3.20.3` → `3.21.2` | `3.24.1` (+3) |  |  | | [ruff](https://docs.astral.sh/ruff) ([source](https://redirect.github.com/astral-sh/ruff), [changelog](https://redirect.github.com/astral-sh/ruff/blob/main/CHANGELOG.md)) | dependency-groups | patch | `0.15.0` → `0.15.1` | |  |  | | [tombi-toml/tombi-pre-commit](https://redirect.github.com/tombi-toml/tombi-pre-commit) | repository | patch | `v0.7.27` → `v0.7.28` | |  |  | | [tox](https://redirect.github.com/tox-dev/tox) ([changelog](https://tox.wiki/en/latest/changelog.html)) | dependency-groups | minor | `4.34.1` → `4.35.0` | `4.36.0` |  |  | Note: The `pre-commit` manager in Renovate is not supported by the `pre-commit` maintainers or community. Please do not report any problems there, instead [create a Discussion in the Renovate repository](https://redirect.github.com/renovatebot/renovate/discussions/new) if you have any questions. --- ### Release Notes <details> <summary>astral-sh/ruff-pre-commit (astral-sh/ruff-pre-commit)</summary> ### [`v0.15.1`](https://redirect.github.com/astral-sh/ruff-pre-commit/releases/tag/v0.15.1) [Compare Source](https://redirect.github.com/astral-sh/ruff-pre-commit/compare/v0.15.0...v0.15.1) See: <https://github.com/astral-sh/ruff/releases/tag/0.15.1> </details> <details> <summary>astral-sh/uv-pre-commit (astral-sh/uv-pre-commit)</summary> ### [`v0.10.2`](https://redirect.github.com/astral-sh/uv-pre-commit/releases/tag/0.10.2) [Compare Source](https://redirect.github.com/astral-sh/uv-pre-commit/compare/0.10.1...0.10.2) See: <https://github.com/astral-sh/uv/releases/tag/0.10.2> ### [`v0.10.1`](https://redirect.github.com/astral-sh/uv-pre-commit/releases/tag/0.10.1) [Compare Source](https://redirect.github.com/astral-sh/uv-pre-commit/compare/0.10.0...0.10.1) See: <https://github.com/astral-sh/uv/releases/tag/0.10.1> </details> <details> <summary>biomejs/pre-commit (biomejs/pre-commit)</summary> ### [`v2.3.15`](https://redirect.github.com/biomejs/pre-commit/compare/v2.3.14...v2.3.15) [Compare Source](https://redirect.github.com/biomejs/pre-commit/compare/v2.3.14...v2.3.15) </details> <details> <summary>coveragepy/coveragepy (coverage)</summary> ### [`v7.13.4`](https://redirect.github.com/coveragepy/coveragepy/blob/HEAD/CHANGES.rst#Version-7134--2026-02-09) [Compare Source](https://redirect.github.com/coveragepy/coveragepy/compare/7.13.3...7.13.4) - Fix: the third-party code fix in 7.13.3 required examining the parent directories where coverage was run. In the unusual situation that one of the parent directories is unreadable, a PermissionError would occur, as described in `issue 2129`\_. This is now fixed. - Fix: in test suites that change sys.path, coverage.py could fail with "RuntimeError: Set changed size during iteration" as described and fixed in `pull 2130`\_. Thanks, Noah Fatsi. - We now publish ppc64le wheels, thanks to `Pankhudi Jain <pull 2121_>`\_. .. \_pull 2121: [#​2121](https://redirect.github.com/coveragepy/coveragepy/pull/2121) .. \_issue 2129: [#​2129](https://redirect.github.com/coveragepy/coveragepy/issues/2129) .. \_pull 2130: [#​2130](https://redirect.github.com/coveragepy/coveragepy/pull/2130) .. \_changes\_7-13-3: </details> <details> <summary>tox-dev/py-filelock (filelock)</summary> ### [`v3.21.2`](https://redirect.github.com/tox-dev/filelock/releases/tag/3.21.2) [Compare Source](https://redirect.github.com/tox-dev/py-filelock/compare/3.21.1...3.21.2) <!-- Release notes generated using configuration in .github/release.yml at 3.21.2 --> #### What's Changed - 🐛 fix: catch ImportError for missing sqlite3 C library by [@​gaborbernat](https://redirect.github.com/gaborbernat) in [tox-dev/filelock#475](https://redirect.github.com/tox-dev/filelock/pull/475) **Full Changelog**: <tox-dev/filelock@3.21.1...3.21.2> ### [`v3.21.1`](https://redirect.github.com/tox-dev/filelock/releases/tag/3.21.1) [Compare Source](https://redirect.github.com/tox-dev/py-filelock/compare/3.21.0...3.21.1) <!-- Release notes generated using configuration in .github/release.yml at 3.21.1 --> #### What's Changed - 🐛 fix: gracefully handle missing `sqlite3` when importing `ReadWriteLock` by [@​bayandin](https://redirect.github.com/bayandin) in [tox-dev/filelock#473](https://redirect.github.com/tox-dev/filelock/pull/473) #### New Contributors - [@​bayandin](https://redirect.github.com/bayandin) made their first contribution in [tox-dev/filelock#473](https://redirect.github.com/tox-dev/filelock/pull/473) **Full Changelog**: <tox-dev/filelock@3.21.0...3.21.1> ### [`v3.21.0`](https://redirect.github.com/tox-dev/filelock/releases/tag/3.21.0) <!-- Release notes generated using configuration in .github/release.yml at 3.21.0 --> #### What's Changed - 🔧 chore: modernize tooling and bump deps by [@​gaborbernat](https://redirect.github.com/gaborbernat) in [tox-dev/filelock#470](https://redirect.github.com/tox-dev/filelock/pull/470) - ✨ feat(lock): add SQLite-based ReadWriteLock by [@​leventov](https://redirect.github.com/leventov) in [tox-dev/filelock#399](https://redirect.github.com/tox-dev/filelock/pull/399) - Enable removal of UNIX lock files by [@​sbc100](https://redirect.github.com/sbc100) in [tox-dev/filelock#408](https://redirect.github.com/tox-dev/filelock/pull/408) - 👷 ci(release): persist changelog on release by [@​gaborbernat](https://redirect.github.com/gaborbernat) in [tox-dev/filelock#471](https://redirect.github.com/tox-dev/filelock/pull/471) - 👷 ci(release): commit changelog and use release config by [@​gaborbernat](https://redirect.github.com/gaborbernat) in [tox-dev/filelock#472](https://redirect.github.com/tox-dev/filelock/pull/472) #### New Contributors - [@​leventov](https://redirect.github.com/leventov) made their first contribution in [tox-dev/filelock#399](https://redirect.github.com/tox-dev/filelock/pull/399) - [@​sbc100](https://redirect.github.com/sbc100) made their first contribution in [tox-dev/filelock#408](https://redirect.github.com/tox-dev/filelock/pull/408) **Full Changelog**: <tox-dev/filelock@3.20.3...3.21.0> </details> <details> <summary>astral-sh/ruff (ruff)</summary> ### [`v0.15.1`](https://redirect.github.com/astral-sh/ruff/blob/HEAD/CHANGELOG.md#0151) [Compare Source](https://redirect.github.com/astral-sh/ruff/compare/0.15.0...0.15.1) Released on 2026-02-12. ##### Preview features - \[`airflow`] Add ruff rules to catch deprecated Airflow imports for Airflow 3.1 (`AIR321`) ([#​22376](https://redirect.github.com/astral-sh/ruff/pull/22376)) - \[`airflow`] Third positional parameter not named `ti_key` should be flagged for `BaseOperatorLink.get_link` (`AIR303`) ([#​22828](https://redirect.github.com/astral-sh/ruff/pull/22828)) - \[`flake8-gettext`] Fix false negatives for plural argument of `ngettext` (`INT001`, `INT002`, `INT003`) ([#​21078](https://redirect.github.com/astral-sh/ruff/pull/21078)) - \[`pyflakes`] Fix infinite loop in preview fix for `unused-import` (`F401`) ([#​23038](https://redirect.github.com/astral-sh/ruff/pull/23038)) - \[`pygrep-hooks`] Detect non-existent mock methods in standalone expressions (`PGH005`) ([#​22830](https://redirect.github.com/astral-sh/ruff/pull/22830)) - \[`pylint`] Allow dunder submodules and improve diagnostic range (`PLC2701`) ([#​22804](https://redirect.github.com/astral-sh/ruff/pull/22804)) - \[`pyupgrade`] Improve diagnostic range for tuples (`UP024`) ([#​23013](https://redirect.github.com/astral-sh/ruff/pull/23013)) - \[`refurb`] Check subscripts in tuple do not use lambda parameters in `reimplemented-operator` (`FURB118`) ([#​23079](https://redirect.github.com/astral-sh/ruff/pull/23079)) - \[`ruff`] Detect mutable defaults in `field` calls (`RUF008`) ([#​23046](https://redirect.github.com/astral-sh/ruff/pull/23046)) - \[`ruff`] Ignore std `cmath.inf` (`RUF069`) ([#​23120](https://redirect.github.com/astral-sh/ruff/pull/23120)) - \[`ruff`] New rule `float-equality-comparison` (`RUF069`) ([#​20585](https://redirect.github.com/astral-sh/ruff/pull/20585)) - Don't format unlabeled Markdown code blocks ([#​23106](https://redirect.github.com/astral-sh/ruff/pull/23106)) - Markdown formatting support in LSP ([#​23063](https://redirect.github.com/astral-sh/ruff/pull/23063)) - Support Quarto Markdown language markers ([#​22947](https://redirect.github.com/astral-sh/ruff/pull/22947)) - Support formatting `pycon` Markdown code blocks ([#​23112](https://redirect.github.com/astral-sh/ruff/pull/23112)) - Use extension mapping to select Markdown code block language ([#​22934](https://redirect.github.com/astral-sh/ruff/pull/22934)) ##### Bug fixes - Avoid false positive for undefined variables in `FAST001` ([#​23224](https://redirect.github.com/astral-sh/ruff/pull/23224)) - Avoid introducing syntax errors for `FAST003` autofix ([#​23227](https://redirect.github.com/astral-sh/ruff/pull/23227)) - Avoid suggesting `InitVar` for `__post_init__` that references PEP 695 type parameters ([#​23226](https://redirect.github.com/astral-sh/ruff/pull/23226)) - Deduplicate type variables in generic functions ([#​23225](https://redirect.github.com/astral-sh/ruff/pull/23225)) - Fix exception handler parenthesis removal for Python 3.14+ ([#​23126](https://redirect.github.com/astral-sh/ruff/pull/23126)) - Fix f-string middle panic when parsing t-strings ([#​23232](https://redirect.github.com/astral-sh/ruff/pull/23232)) - Wrap `RUF020` target for multiline fixes ([#​23210](https://redirect.github.com/astral-sh/ruff/pull/23210)) - Wrap `UP007` target for multiline fixes ([#​23208](https://redirect.github.com/astral-sh/ruff/pull/23208)) - Fix missing diagnostics for last range suppression in file ([#​23242](https://redirect.github.com/astral-sh/ruff/pull/23242)) - \[`pyupgrade`] Fix syntax error on string with newline escape and comment (`UP037`) ([#​22968](https://redirect.github.com/astral-sh/ruff/pull/22968)) ##### Rule changes - Use `ruff` instead of `Ruff` as the program name in GitHub output format ([#​23240](https://redirect.github.com/astral-sh/ruff/pull/23240)) - \[`PT006`] Fix syntax error when unpacking nested tuples in `parametrize` fixes ([#​22441](https://redirect.github.com/astral-sh/ruff/issues/22441)) ([#​22464](https://redirect.github.com/astral-sh/ruff/pull/22464)) - \[`airflow`] Catch deprecated attribute access from context key for Airflow 3.0 (`AIR301`) ([#​22850](https://redirect.github.com/astral-sh/ruff/pull/22850)) - \[`airflow`] Capture deprecated arguments and a decorator (`AIR301`) ([#​23170](https://redirect.github.com/astral-sh/ruff/pull/23170)) - \[`flake8-boolean-trap`] Add `multiprocessing.Value` to excluded functions for `FBT003` ([#​23010](https://redirect.github.com/astral-sh/ruff/pull/23010)) - \[`flake8-bugbear`] Add a secondary annotation showing the previous occurrence (`B033`) ([#​22634](https://redirect.github.com/astral-sh/ruff/pull/22634)) - \[`flake8-type-checking`] Add sub-diagnostic showing the runtime use of an annotation (`TC004`) ([#​23091](https://redirect.github.com/astral-sh/ruff/pull/23091)) - \[`isort`] Support configurable import section heading comments ([#​23151](https://redirect.github.com/astral-sh/ruff/pull/23151)) - \[`ruff`] Improve the diagnostic for `RUF012` ([#​23202](https://redirect.github.com/astral-sh/ruff/pull/23202)) ##### Formatter - Suppress diagnostic output for `format --check --silent` ([#​17736](https://redirect.github.com/astral-sh/ruff/pull/17736)) ##### Documentation - Add tabbed shell completion documentation ([#​23169](https://redirect.github.com/astral-sh/ruff/pull/23169)) - Explain how to enable Markdown formatting for pre-commit hook ([#​23077](https://redirect.github.com/astral-sh/ruff/pull/23077)) - Fixed import in `runtime-evaluated-decorators` example ([#​23187](https://redirect.github.com/astral-sh/ruff/pull/23187)) - Update ruff server contributing guide ([#​23060](https://redirect.github.com/astral-sh/ruff/pull/23060)) ##### Other changes - Exclude WASM artifacts from GitHub releases ([#​23221](https://redirect.github.com/astral-sh/ruff/pull/23221)) ##### Contributors - [@​mkniewallner](https://redirect.github.com/mkniewallner) - [@​bxff](https://redirect.github.com/bxff) - [@​dylwil3](https://redirect.github.com/dylwil3) - [@​Avasam](https://redirect.github.com/Avasam) - [@​amyreese](https://redirect.github.com/amyreese) - [@​charliermarsh](https://redirect.github.com/charliermarsh) - [@​Alex-ley-scrub](https://redirect.github.com/Alex-ley-scrub) - [@​Kalmaegi](https://redirect.github.com/Kalmaegi) - [@​danparizher](https://redirect.github.com/danparizher) - [@​AiyionPrime](https://redirect.github.com/AiyionPrime) - [@​eureka928](https://redirect.github.com/eureka928) - [@​11happy](https://redirect.github.com/11happy) - [@​Jkhall81](https://redirect.github.com/Jkhall81) - [@​chirizxc](https://redirect.github.com/chirizxc) - [@​leandrobbraga](https://redirect.github.com/leandrobbraga) - [@​tvatter](https://redirect.github.com/tvatter) - [@​anishgirianish](https://redirect.github.com/anishgirianish) - [@​shaanmajid](https://redirect.github.com/shaanmajid) - [@​ntBre](https://redirect.github.com/ntBre) - [@​sjyangkevin](https://redirect.github.com/sjyangkevin) </details> <details> <summary>tombi-toml/tombi-pre-commit (tombi-toml/tombi-pre-commit)</summary> ### [`v0.7.28`](https://redirect.github.com/tombi-toml/tombi-pre-commit/releases/tag/v0.7.28) [Compare Source](https://redirect.github.com/tombi-toml/tombi-pre-commit/compare/v0.7.27...v0.7.28) See: <https://github.com/tombi-toml/tombi/releases/tag/v0.7.28> </details> <details> <summary>tox-dev/tox (tox)</summary> ### [`v4.35.0`](https://redirect.github.com/tox-dev/tox/releases/tag/4.35.0) [Compare Source](https://redirect.github.com/tox-dev/tox/compare/4.34.1...4.35.0) <!-- Release notes generated using configuration in .github/release.yml at 4.35.0 --> #### What's Changed - docs: fix misleading ENVDIR reference in devenv description by [@​VedantMadane](https://redirect.github.com/VedantMadane) in [#​3670](https://redirect.github.com/tox-dev/tox/pull/3670) - Fix CI post packaging releese by [@​gaborbernat](https://redirect.github.com/gaborbernat) in [#​3673](https://redirect.github.com/tox-dev/tox/pull/3673) - Fix code block format in docs/plugins.rst by [@​mushitoriami](https://redirect.github.com/mushitoriami) in [#​3675](https://redirect.github.com/tox-dev/tox/pull/3675) - fix(docs): correct path for built documentation by [@​daniel7an](https://redirect.github.com/daniel7an) in [#​3680](https://redirect.github.com/tox-dev/tox/pull/3680) - Document injected environment variables by [@​rahuldevikar](https://redirect.github.com/rahuldevikar) in [#​3681](https://redirect.github.com/tox-dev/tox/pull/3681) - Show toxfile.py inline plugin in --version output by [@​rahuldevikar](https://redirect.github.com/rahuldevikar) in [#​3682](https://redirect.github.com/tox-dev/tox/pull/3682) #### New Contributors - [@​VedantMadane](https://redirect.github.com/VedantMadane) made their first contribution in [#​3670](https://redirect.github.com/tox-dev/tox/pull/3670) - [@​mushitoriami](https://redirect.github.com/mushitoriami) made their first contribution in [#​3675](https://redirect.github.com/tox-dev/tox/pull/3675) - [@​daniel7an](https://redirect.github.com/daniel7an) made their first contribution in [#​3680](https://redirect.github.com/tox-dev/tox/pull/3680) - [@​rahuldevikar](https://redirect.github.com/rahuldevikar) made their first contribution in [#​3681](https://redirect.github.com/tox-dev/tox/pull/3681) **Full Changelog**: <tox-dev/tox@4.34.1...4.35.0> </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 4am on monday" in timezone UTC, Automerge - Between 12:00 AM and 03:59 AM, only on Monday ( * 0-3 * * 1 ) in timezone UTC. 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/ansible/molecule). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My44LjUiLCJ1cGRhdGVkSW5WZXIiOiI0My44LjUiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbImNob3JlIiwiZGVwZW5kZW5jaWVzIl19--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
4 tasks
TheoPascoli
added a commit
to AntaresSimulatorTeam/AntaREST
that referenced
this pull request
Mar 2, 2026
> ℹ️ **Note**
>
> This PR body was truncated due to platform limits.
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [MarkupSafe](https://redirect.github.com/pallets/markupsafe)
([changelog](https://markupsafe.palletsprojects.com/page/changes/)) |
`~=2.0.1` → `~=2.1.5` |

|

|
| [PyJWT](https://redirect.github.com/jpadilla/pyjwt) | `~=2.9.0` →
`~=2.11.0` |

|

|
| [alembic](https://redirect.github.com/sqlalchemy/alembic)
([changelog](https://alembic.sqlalchemy.org/en/latest/changelog.html)) |
`~=1.16.5` → `~=1.18.4` |

|

|
| [celery](https://docs.celeryq.dev/)
([source](https://redirect.github.com/celery/celery),
[changelog](https://docs.celeryq.dev/en/stable/changelog.html)) |
`~=5.5.0` → `~=5.6.2` |

|

|
| [celery-types](https://redirect.github.com/sbdchd/celery-types) |
`~=0.23.0` → `~=0.24.0` |

|

|
| [checksumdir](https://redirect.github.com/cakepietoast/checksumdir) |
`~=1.2.0` → `~=1.3.0` |

|

|
| [fastapi](https://redirect.github.com/fastapi/fastapi)
([changelog](https://fastapi.tiangolo.com/release-notes/)) | `==0.130.0`
→ `==0.133.0` |

|

|
| [filelock](https://redirect.github.com/tox-dev/py-filelock) |
`~=3.20.3` → `~=3.24.3` |

|

|
| [httpx](https://redirect.github.com/encode/httpx)
([changelog](https://redirect.github.com/encode/httpx/blob/master/CHANGELOG.md))
| `~=0.27.0` → `~=0.28.1` |

|

|
| [humanize](https://redirect.github.com/python-humanize/humanize)
([changelog](https://redirect.github.com/python-humanize/humanize/releases))
| `~=4.11.0` → `~=4.15.0` |

|

|
| [mypy](https://redirect.github.com/python/mypy)
([changelog](https://mypy.readthedocs.io/en/latest/changelog.html)) |
`~=1.15.0` → `~=1.19.1` |

|

|
| [numexpr](https://redirect.github.com/pydata/numexpr) | `==2.13.1` →
`==2.14.1` |

|

|
| [numpy](https://redirect.github.com/numpy/numpy)
([changelog](https://numpy.org/doc/stable/release)) | `~=2.3.5` →
`~=2.4.2` |

|

|
| [plyer](https://plyer.readthedocs.org/en/latest/) | `~=2.0.0` →
`~=2.1.0` |

|

|
| [pre-commit](https://redirect.github.com/pre-commit/pre-commit) |
`~=4.1.0` → `~=4.5.1` |

|

|
|
[prometheus-client](https://redirect.github.com/prometheus/client_python)
| `==0.23.1` → `==0.24.1` |

|

|
| [py7zr](https://redirect.github.com/miurahr/py7zr)
([changelog](https://py7zr.readthedocs.io/en/latest/Changelog.html)) |
`~=0.20.6` → `~=0.22.0` |

|

|
| [pyinstaller](https://redirect.github.com/pyinstaller/pyinstaller)
([changelog](https://pyinstaller.org/en/stable/CHANGES.html)) |
`==6.17.0` → `==6.19.0` |

|

|
|
[pyinstaller-hooks-contrib](https://redirect.github.com/pyinstaller/pyinstaller-hooks-contrib)
| `==2025.10` → `==2026.0` |

|

|
| [redis](https://redirect.github.com/redis/redis-py)
([changelog](https://redirect.github.com/redis/redis-py/releases)) |
`~=5.2.0` → `~=5.3.1` |

|

|
| [ruff](https://docs.astral.sh/ruff)
([source](https://redirect.github.com/astral-sh/ruff),
[changelog](https://redirect.github.com/astral-sh/ruff/blob/main/CHANGELOG.md))
| `~=0.9.6` → `~=0.15.2` |

|

|
| [types-redis](https://redirect.github.com/python/typeshed)
([changelog](https://redirect.github.com/typeshed-internal/stub_uploader/blob/main/data/changelogs/redis.md))
| `~=4.1.2` → `~=4.6.0` |

|

|
| [types-requests](https://redirect.github.com/python/typeshed)
([changelog](https://redirect.github.com/typeshed-internal/stub_uploader/blob/main/data/changelogs/requests.md))
| `~=2.27.1` → `~=2.32.4` |

|

|
| [uvicorn](https://redirect.github.com/Kludex/uvicorn)
([changelog](https://uvicorn.dev/release-notes)) | `~=0.37.0` →
`~=0.41.0` |

|

|
---
### Release Notes
<details>
<summary>pallets/markupsafe (MarkupSafe)</summary>
###
[`v2.1.5`](https://redirect.github.com/pallets/markupsafe/blob/HEAD/CHANGES.rst#Version-215)
[Compare
Source](https://redirect.github.com/pallets/markupsafe/compare/2.1.4...2.1.5)
Released 2024-02-02
- Fix `striptags` not collapsing spaces. :issue:`417`
###
[`v2.1.4`](https://redirect.github.com/pallets/markupsafe/blob/HEAD/CHANGES.rst#Version-214)
[Compare
Source](https://redirect.github.com/pallets/markupsafe/compare/2.1.3...2.1.4)
Released 2024-01-19
- Don't use regular expressions for `striptags`, avoiding a performance
issue. :pr:`413`
###
[`v2.1.3`](https://redirect.github.com/pallets/markupsafe/blob/HEAD/CHANGES.rst#Version-213)
[Compare
Source](https://redirect.github.com/pallets/markupsafe/compare/2.1.2...2.1.3)
Released 2023-06-02
- Implement `format_map`, `casefold`, `removeprefix`, and `removesuffix`
methods. :issue:`370`
- Fix static typing for basic `str` methods on `Markup`. :issue:`358`
- Use `Self` for annotating return types. :pr:`379`
###
[`v2.1.2`](https://redirect.github.com/pallets/markupsafe/blob/HEAD/CHANGES.rst#Version-212)
[Compare
Source](https://redirect.github.com/pallets/markupsafe/compare/2.1.1...2.1.2)
Released 2023-01-17
- Fix `striptags` not stripping tags containing newlines.
:issue:`310`
###
[`v2.1.1`](https://redirect.github.com/pallets/markupsafe/blob/HEAD/CHANGES.rst#Version-211)
[Compare
Source](https://redirect.github.com/pallets/markupsafe/compare/2.1.0...2.1.1)
Released 2022-03-14
- Avoid ambiguous regex matches in `striptags`. :pr:`293`
###
[`v2.1.0`](https://redirect.github.com/pallets/markupsafe/blob/HEAD/CHANGES.rst#Version-210)
[Compare
Source](https://redirect.github.com/pallets/markupsafe/compare/2.0.1...2.1.0)
Released 2022-02-17
- Drop support for Python 3.6. :pr:`262`
- Remove `soft_unicode`, which was previously deprecated. Use
`soft_str` instead. :pr:`261`
- Raise error on missing single placeholder during string
interpolation. :issue:`225`
- Disable speedups module for GraalPython. :issue:`277`
</details>
<details>
<summary>jpadilla/pyjwt (PyJWT)</summary>
###
[`v2.11.0`](https://redirect.github.com/jpadilla/pyjwt/blob/HEAD/CHANGELOG.rst#Unreleased-httpsgithubcomjpadillapyjwtcompare2110HEAD)
[Compare
Source](https://redirect.github.com/jpadilla/pyjwt/compare/2.10.1...2.11.0)
Fixed
```
Added
```
###
[`v2.10.1`](https://redirect.github.com/jpadilla/pyjwt/blob/HEAD/CHANGELOG.rst#Unreleased-httpsgithubcomjpadillapyjwtcompare2101HEAD)
[Compare
Source](https://redirect.github.com/jpadilla/pyjwt/compare/2.10.0...2.10.1)
Fixed
```
- Validate key against allowed types for Algorithm family in `#​964 <https://github.com/jpadilla/pyjwt/pull/964>`__
- Add iterator for JWKSet in `#​1041 <https://github.com/jpadilla/pyjwt/pull/1041>`__
- Validate `iss` claim is a string during encoding and decoding by @​pachewise in `#​1040 <https://github.com/jpadilla/pyjwt/pull/1040>`__
- Improve typing/logic for `options` in decode, decode_complete by @​pachewise in `#​1045 <https://github.com/jpadilla/pyjwt/pull/1045>`__
- Declare float supported type for lifespan and timeout by @​nikitagashkov in `#​1068 <https://github.com/jpadilla/pyjwt/pull/1068>`__
Added
```
- Docs: Add example of using leeway with nbf by
[@​djw8605](https://redirect.github.com/djw8605) in `#​1034
<https://github.com/jpadilla/pyjwt/pull/1034>`\_\_
- Docs: Refactored docs with `autodoc`; added `PyJWS` and
`jwt.algorithms` docs by
[@​pachewise](https://redirect.github.com/pachewise) in
`#​1045 <https://github.com/jpadilla/pyjwt/pull/1045>`\_\_
- Docs: Documentation improvements for "sub" and "jti" claims by
[@​cleder](https://redirect.github.com/cleder) in `#​1088
<https://github.com/jpadilla/pyjwt/pull/1088>`
###
[`v2.10.0`](https://redirect.github.com/jpadilla/pyjwt/blob/HEAD/CHANGELOG.rst#v2101-httpsgithubcomjpadillapyjwtcompare21002101)
[Compare
Source](https://redirect.github.com/jpadilla/pyjwt/compare/2.9.0...2.10.0)
Fixed
```
- Prevent partial matching of `iss` claim by @​fabianbadoi in `GHSA-75c5-xw7c-p5pm <https://github.com/jpadilla/pyjwt/security/advisories/GHSA-75c5-xw7c-p5pm>`__
```
</details>
<details>
<summary>celery/celery (celery)</summary>
###
[`v5.6.2`](https://redirect.github.com/celery/celery/blob/HEAD/Changelog.rst#562)
[Compare
Source](https://redirect.github.com/celery/celery/compare/v5.6.1...v5.6.2)
\=====
:release-date: 2026-01-04
:release-by: Tomer Nosrati
What's Changed
```
- Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string (#​10045)
- Bugfix: Revoked tasks now immediately update backend status to REVOKED (#​9869)
- Prepare for release: v5.6.2 (#​10049)
.. _version-5.6.1:
5.6.1
=====
:release-date: 2025-12-29
:release-by: Tomer Nosrati
What's Changed
```
- Fix Redis Sentinel ACL authentication support
([#​10013](https://redirect.github.com/celery/celery/issues/10013))
- Fix: Broker heartbeats not sent during graceful shutdown
([#​9986](https://redirect.github.com/celery/celery/issues/9986))
- docs
[#​5410](https://redirect.github.com/celery/celery/issues/5410) --
Document confirm\_publish broker transport option
([#​10016](https://redirect.github.com/celery/celery/issues/10016))
- close DB pools only in prefork mode
([#​10020](https://redirect.github.com/celery/celery/issues/10020))
- Fix: Avoid unnecessary Django database connection creation during
cleanup
([#​10015](https://redirect.github.com/celery/celery/issues/10015))
- reliable prefork detection
([#​10023](https://redirect.github.com/celery/celery/issues/10023))
- better coverage
([#​10029](https://redirect.github.com/celery/celery/issues/10029))
- Docs: clarify `result_extended` vs periodic task metadata and show
`headers["periodic_task_name"]` example
([#​10030](https://redirect.github.com/celery/celery/issues/10030))
- Stop importing pytest\_subtests
([#​10032](https://redirect.github.com/celery/celery/issues/10032))
- Only use exceptiongroup backport for Python < 3.11
([#​10033](https://redirect.github.com/celery/celery/issues/10033))
- Prepare for release: v5.6.1
([#​10037](https://redirect.github.com/celery/celery/issues/10037))
.. \_version-5.6.0:
###
[`v5.6.1`](https://redirect.github.com/celery/celery/blob/HEAD/Changelog.rst#561)
[Compare
Source](https://redirect.github.com/celery/celery/compare/v5.6.0...v5.6.1)
\=====
:release-date: 2025-12-29
:release-by: Tomer Nosrati
What's Changed
```
- Fix Redis Sentinel ACL authentication support (#​10013)
- Fix: Broker heartbeats not sent during graceful shutdown (#​9986)
- docs #​5410 -- Document confirm_publish broker transport option (#​10016)
- close DB pools only in prefork mode (#​10020)
- Fix: Avoid unnecessary Django database connection creation during cleanup (#​10015)
- reliable prefork detection (#​10023)
- better coverage (#​10029)
- Docs: clarify `result_extended` vs periodic task metadata and show `headers["periodic_task_name"]` example (#​10030)
- Stop importing pytest_subtests (#​10032)
- Only use exceptiongroup backport for Python < 3.11 (#​10033)
- Prepare for release: v5.6.1 (#​10037)
.. _version-5.6.0:
5.6.0
=====
:release-date: 2025-11-30
:release-by: Tomer Nosrati
Celery v5.6.0 is now available.
Key Highlights
```
See :ref:`whatsnew-5.6` for a complete overview or read the main
highlights below.
## Python 3.9 Minimum Version
Celery 5.6.0 drops support for Python 3.8 (EOL). The minimum required
Python
version is now 3.9. Users still on Python 3.8 must upgrade their Python
version
before upgrading to Celery 5.6.0.
Additionally, this release includes initial support for Python 3.14.
## SQS: Reverted to `pycurl` from `urllib3`
The switch from `pycurl` to `urllib3` for the SQS transport (introduced
in
Celery 5.5.0 via Kombu) has been reverted due to critical issues
affecting SQS
users:
- Processing throughput dropped from \~100 tasks/sec to \~3/sec in some
environments
- `UnknownOperationException` errors causing container crash loops
- Silent message processing failures with no error logs
Users of the SQS transport must ensure `pycurl` is installed. If you
removed
`pycurl` after upgrading to Celery 5.5.0, you will need to reinstall it.
Contributed by `@auvipy <https://github.com/auvipy>`\_ in
`#​9620 <https://github.com/celery/celery/pull/9620>`\_.
## Security Fix: Broker Credential Leak Prevention
Fixed a security issue where broker URLs containing passwords were being
logged
in plaintext by the delayed delivery mechanism. Broker credentials are
now
properly sanitized in all log output.
Contributed by `@giancarloromeo <https://github.com/giancarloromeo>`\_
in
`#​9997 <https://github.com/celery/celery/pull/9997>`\_.
## Memory Leak Fixes
Two significant memory leaks have been fixed in this release:
**Exception Handling Memory Leak**: Fixed a critical memory leak in task
exception
handling that was particularly severe on Python 3.11+ due to enhanced
traceback
data. The fix properly breaks reference cycles in tracebacks to allow
garbage
collection.
Contributed by `@jaiganeshs21 <https://github.com/jaiganeshs21>`\_ in
`#​9799 <https://github.com/celery/celery/pull/9799>`\_.
**Pending Result Memory Leak**: Fixed a memory leak where `AsyncResult`
subscriptions were not being cleaned up when results were forgotten.
Contributed by `@tsoos99dev <https://github.com/tsoos99dev>`\_ in
`#​9806 <https://github.com/celery/celery/pull/9806>`\_.
## ETA Task Memory Limit
New configuration option :setting:`worker_eta_task_limit` to prevent
out-of-memory
crashes when workers fetch large numbers of ETA or countdown tasks.
Previously,
workers could exhaust available memory when the broker contained many
scheduled tasks.
Example usage:
.. code-block:: python
```
app.conf.worker_eta_task_limit = 1000
```
Contributed by `@sashu2310 <https://github.com/sashu2310>`\_ in
`#​9853 <https://github.com/celery/celery/pull/9853>`\_.
## Queue Type Selection for Auto-created Queues
New configuration options allow specifying the queue type and exchange
type when
Celery auto-creates missing queues. This is particularly useful for
RabbitMQ users
who want to use quorum queues with auto-created queues.
Configuration options:
- :setting:`task_create_missing_queue_type`: Sets the queue type for
auto-created
queues (e.g., `quorum`, `classic`)
- :setting:`task_create_missing_queue_exchange_type`: Sets the exchange
type for
auto-created queues
Example usage:
.. code-block:: python
```
app.conf.task_create_missing_queue_type = 'quorum'
```
Contributed by `@ghirailghiro <https://github.com/ghirailghiro>`\_ in
`#​9815 <https://github.com/celery/celery/pull/9815>`\_.
What's Changed
```
- Prepare for release: v5.6.0 (#​10010)
.. _version-5.6.0rc2:
5.6.0rc2
========
:release-date: 2025-11-22
:release-by: Tomer Nosrati
Celery v5.6.0 Release Candidate 2 is now available for testing.
Please help us test this version and report any issues.
What's Changed
```
- Remove Python 4.0 version condition for pytest dependencies
([#​9993](https://redirect.github.com/celery/celery/issues/9993))
- Sanitize broker URL in delayed delivery logs (avoid leaking
credentials)
([#​9997](https://redirect.github.com/celery/celery/issues/9997))
- Don't fail task on timeout during cold shutdown
([#​9678](https://redirect.github.com/celery/celery/issues/9678))
- Add Py39-314t to CI
([#​9999](https://redirect.github.com/celery/celery/issues/9999))
- asynpool: Don't return from inside a finally block
([#​10000](https://redirect.github.com/celery/celery/issues/10000))
- Prepare for (pre) release: v5.6.0rc2
([#​10005](https://redirect.github.com/celery/celery/issues/10005))
.. \_version-5.6.0rc1:
###
[`v5.6.0`](https://redirect.github.com/celery/celery/blob/HEAD/Changelog.rst#560)
[Compare
Source](https://redirect.github.com/celery/celery/compare/v5.5.3...v5.6.0)
\=====
:release-date: 2025-11-30
:release-by: Tomer Nosrati
Celery v5.6.0 is now available.
Key Highlights
```
See :ref:`whatsnew-5.6` for a complete overview or read the main highlights below.
Python 3.9 Minimum Version
--------------------------
Celery 5.6.0 drops support for Python 3.8 (EOL). The minimum required Python
version is now 3.9. Users still on Python 3.8 must upgrade their Python version
before upgrading to Celery 5.6.0.
Additionally, this release includes initial support for Python 3.14.
SQS: Reverted to ``pycurl`` from ``urllib3``
--------------------------------------------
The switch from ``pycurl`` to ``urllib3`` for the SQS transport (introduced in
Celery 5.5.0 via Kombu) has been reverted due to critical issues affecting SQS
users:
- Processing throughput dropped from ~100 tasks/sec to ~3/sec in some environments
- ``UnknownOperationException`` errors causing container crash loops
- Silent message processing failures with no error logs
Users of the SQS transport must ensure ``pycurl`` is installed. If you removed
``pycurl`` after upgrading to Celery 5.5.0, you will need to reinstall it.
Contributed by `@auvipy <https://github.com/auvipy>`_ in
`#​9620 <https://github.com/celery/celery/pull/9620>`_.
Security Fix: Broker Credential Leak Prevention
------------------------------------------------
Fixed a security issue where broker URLs containing passwords were being logged
in plaintext by the delayed delivery mechanism. Broker credentials are now
properly sanitized in all log output.
Contributed by `@giancarloromeo <https://github.com/giancarloromeo>`_ in
`#​9997 <https://github.com/celery/celery/pull/9997>`_.
Memory Leak Fixes
-----------------
Two significant memory leaks have been fixed in this release:
**Exception Handling Memory Leak**: Fixed a critical memory leak in task exception
handling that was particularly severe on Python 3.11+ due to enhanced traceback
data. The fix properly breaks reference cycles in tracebacks to allow garbage
collection.
Contributed by `@jaiganeshs21 <https://github.com/jaiganeshs21>`_ in
`#​9799 <https://github.com/celery/celery/pull/9799>`_.
**Pending Result Memory Leak**: Fixed a memory leak where ``AsyncResult``
subscriptions were not being cleaned up when results were forgotten.
Contributed by `@tsoos99dev <https://github.com/tsoos99dev>`_ in
`#​9806 <https://github.com/celery/celery/pull/9806>`_.
ETA Task Memory Limit
---------------------
New configuration option :setting:`worker_eta_task_limit` to prevent out-of-memory
crashes when workers fetch large numbers of ETA or countdown tasks. Previously,
workers could exhaust available memory when the broker contained many scheduled tasks.
Example usage:
.. code-block:: python
app.conf.worker_eta_task_limit = 1000
Contributed by `@sashu2310 <https://github.com/sashu2310>`_ in
`#​9853 <https://github.com/celery/celery/pull/9853>`_.
Queue Type Selection for Auto-created Queues
--------------------------------------------
New configuration options allow specifying the queue type and exchange type when
Celery auto-creates missing queues. This is particularly useful for RabbitMQ users
who want to use quorum queues with auto-created queues.
Configuration options:
- :setting:`task_create_missing_queue_type`: Sets the queue type for auto-created
queues (e.g., ``quorum``, ``classic``)
- :setting:`task_create_missing_queue_exchange_type`: Sets the exchange type for
auto-created queues
Example usage:
.. code-block:: python
app.conf.task_create_missing_queue_type = 'quorum'
Contributed by `@ghirailghiro <https://github.com/ghirailghiro>`_ in
`#​9815 <https://github.com/celery/celery/pull/9815>`_.
What's Changed
```
- Prepare for release: v5.6.0
([#​10010](https://redirect.github.com/celery/celery/issues/10010))
.. \_version-5.6.0rc2:
</details>
<details>
<summary>cakepietoast/checksumdir (checksumdir)</summary>
###
[`v1.3.0`](https://redirect.github.com/to-mc/checksumdir/releases/tag/1.3.0)
[Compare
Source](https://redirect.github.com/cakepietoast/checksumdir/compare/1.2.0...1.3.0)
Python compatibility
</details>
<details>
<summary>fastapi/fastapi (fastapi)</summary>
###
[`v0.133.0`](https://redirect.github.com/fastapi/fastapi/compare/0.132.1...0.133.0)
[Compare
Source](https://redirect.github.com/fastapi/fastapi/compare/0.132.1...0.133.0)
###
[`v0.132.1`](https://redirect.github.com/fastapi/fastapi/releases/tag/0.132.1)
[Compare
Source](https://redirect.github.com/fastapi/fastapi/compare/0.132.0...0.132.1)
##### Refactors
- ♻️ Refactor logic to handle OpenAPI and Swagger UI escaping data. PR
[#​14986](https://redirect.github.com/fastapi/fastapi/pull/14986)
by [@​tiangolo](https://redirect.github.com/tiangolo).
##### Internal
- 👥 Update FastAPI People - Experts. PR
[#​14972](https://redirect.github.com/fastapi/fastapi/pull/14972)
by [@​tiangolo](https://redirect.github.com/tiangolo).
- 👷 Allow skipping `benchmark` job in `test` workflow. PR
[#​14974](https://redirect.github.com/fastapi/fastapi/pull/14974)
by [@​YuriiMotov](https://redirect.github.com/YuriiMotov).
###
[`v0.132.0`](https://redirect.github.com/fastapi/fastapi/releases/tag/0.132.0)
[Compare
Source](https://redirect.github.com/fastapi/fastapi/compare/0.131.0...0.132.0)
##### Breaking Changes
- 🔒️ Add `strict_content_type` checking for JSON requests. PR
[#​14978](https://redirect.github.com/fastapi/fastapi/pull/14978)
by [@​tiangolo](https://redirect.github.com/tiangolo).
- Now FastAPI checks, by default, that JSON requests have a
`Content-Type` header with a valid JSON value, like `application/json`,
and rejects requests that don't.
- If the clients for your app don't send a valid `Content-Type` header
you can disable this with `strict_content_type=False`.
- Check the new docs: [Strict Content-Type
Checking](https://fastapi.tiangolo.com/advanced/strict-content-type/).
##### Internal
- ⬆ Bump flask from 3.1.2 to 3.1.3. PR
[#​14949](https://redirect.github.com/fastapi/fastapi/pull/14949)
by
[@​dependabot\[bot\]](https://redirect.github.com/apps/dependabot).
- ⬆ Update all dependencies to use `griffelib` instead of `griffe`. PR
[#​14973](https://redirect.github.com/fastapi/fastapi/pull/14973)
by [@​svlandeg](https://redirect.github.com/svlandeg).
- 🔨 Fix `FastAPI People` workflow. PR
[#​14951](https://redirect.github.com/fastapi/fastapi/pull/14951)
by [@​YuriiMotov](https://redirect.github.com/YuriiMotov).
- 👷 Do not run codspeed with coverage as it's not tracked. PR
[#​14966](https://redirect.github.com/fastapi/fastapi/pull/14966)
by [@​tiangolo](https://redirect.github.com/tiangolo).
- 👷 Do not include benchmark tests in coverage to speed up coverage
processing. PR
[#​14965](https://redirect.github.com/fastapi/fastapi/pull/14965)
by [@​tiangolo](https://redirect.github.com/tiangolo).
###
[`v0.131.0`](https://redirect.github.com/fastapi/fastapi/releases/tag/0.131.0)
[Compare
Source](https://redirect.github.com/fastapi/fastapi/compare/0.130.0...0.131.0)
##### Breaking Changes
- 🗑️ Deprecate `ORJSONResponse` and `UJSONResponse`. PR
[#​14964](https://redirect.github.com/fastapi/fastapi/pull/14964)
by [@​tiangolo](https://redirect.github.com/tiangolo).
</details>
<details>
<summary>tox-dev/py-filelock (filelock)</summary>
###
[`v3.24.3`](https://redirect.github.com/tox-dev/filelock/releases/tag/3.24.3)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/3.24.2...3.24.3)
<!-- Release notes generated using configuration in .github/release.yml
at 3.24.3 -->
#### What's Changed
- 🐛 fix(ci): add trailing blank line after changelog entries by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#492](https://redirect.github.com/tox-dev/filelock/pull/492)
- 🐛 fix(unix): handle ENOENT race on FUSE/NFS during acquire by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#495](https://redirect.github.com/tox-dev/filelock/pull/495)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/3.24.2...3.24.3>
###
[`v3.24.2`](https://redirect.github.com/tox-dev/filelock/releases/tag/3.24.2)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/3.24.1...3.24.2)
<!-- Release notes generated using configuration in .github/release.yml
at 3.24.2 -->
#### What's Changed
- 📝 docs: restructure using Diataxis framework by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#489](https://redirect.github.com/tox-dev/filelock/pull/489)
- 🐛 fix(test): resolve flaky write non-starvation test by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#490](https://redirect.github.com/tox-dev/filelock/pull/490)
- 🐛 fix(rw): close sqlite3 cursors and skip SoftFileLock Windows race by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#491](https://redirect.github.com/tox-dev/filelock/pull/491)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/3.24.1...3.24.2>
###
[`v3.24.1`](https://redirect.github.com/tox-dev/filelock/releases/tag/3.24.1)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/3.24.0...3.24.1)
<!-- Release notes generated using configuration in .github/release.yml
at 3.24.1 -->
#### What's Changed
- 🐛 fix(soft): resolve Windows deadlock and test race condition by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#488](https://redirect.github.com/tox-dev/filelock/pull/488)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/3.24.0...3.24.1>
###
[`v3.24.0`](https://redirect.github.com/tox-dev/filelock/releases/tag/3.24.0)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/3.23.0...3.24.0)
<!-- Release notes generated using configuration in .github/release.yml
at 3.24.0 -->
#### What's Changed
- 🐛 fix(unix): auto-fallback to SoftFileLock on ENOSYS by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#480](https://redirect.github.com/tox-dev/filelock/pull/480)
- ✨ feat(lock): add poll\_interval to constructor by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#482](https://redirect.github.com/tox-dev/filelock/pull/482)
- 🐛 fix(win): eliminate lock file race in threaded usage by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#484](https://redirect.github.com/tox-dev/filelock/pull/484)
- ✨ feat(mode): respect POSIX default ACL inheritance by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#483](https://redirect.github.com/tox-dev/filelock/pull/483)
- 🐛 fix(api): detect same-thread self-deadlock by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#481](https://redirect.github.com/tox-dev/filelock/pull/481)
- ✨ feat(lock): add cancel\_check to acquire by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#487](https://redirect.github.com/tox-dev/filelock/pull/487)
- ✨ feat(lock): add lifetime parameter for lock expiration by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#486](https://redirect.github.com/tox-dev/filelock/pull/486)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/3.23.0...3.24.0>
###
[`v3.23.0`](https://redirect.github.com/tox-dev/filelock/releases/tag/3.23.0)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/3.22.0...3.23.0)
<!-- Release notes generated using configuration in .github/release.yml
at 3.23.0 -->
#### What's Changed
- 📝 docs: add fasteners to similar libraries by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#478](https://redirect.github.com/tox-dev/filelock/pull/478)
- 📝 docs: move from Unlicense to MIT by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#479](https://redirect.github.com/tox-dev/filelock/pull/479)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/3.22.0...3.23.0>
###
[`v3.22.0`](https://redirect.github.com/tox-dev/filelock/releases/tag/3.22.0)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/3.21.2...3.22.0)
<!-- Release notes generated using configuration in .github/release.yml
at 3.22.0 -->
#### What's Changed
- ✨ feat(soft): detect and break stale locks by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#476](https://redirect.github.com/tox-dev/filelock/pull/476)
- 🐛 fix(soft): skip stale lock detection on Windows by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#477](https://redirect.github.com/tox-dev/filelock/pull/477)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/3.21.2...3.22.0>
###
[`v3.21.2`](https://redirect.github.com/tox-dev/filelock/releases/tag/3.21.2)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/3.21.1...3.21.2)
<!-- Release notes generated using configuration in .github/release.yml
at 3.21.2 -->
#### What's Changed
- 🐛 fix: catch ImportError for missing sqlite3 C library by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#475](https://redirect.github.com/tox-dev/filelock/pull/475)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/3.21.1...3.21.2>
###
[`v3.21.1`](https://redirect.github.com/tox-dev/filelock/releases/tag/3.21.1)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/3.21.0...3.21.1)
<!-- Release notes generated using configuration in .github/release.yml
at 3.21.1 -->
#### What's Changed
- 🐛 fix: gracefully handle missing `sqlite3` when importing
`ReadWriteLock` by
[@​bayandin](https://redirect.github.com/bayandin) in
[tox-dev/filelock#473](https://redirect.github.com/tox-dev/filelock/pull/473)
#### New Contributors
- [@​bayandin](https://redirect.github.com/bayandin) made their
first contribution in
[tox-dev/filelock#473](https://redirect.github.com/tox-dev/filelock/pull/473)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/3.21.0...3.21.1>
###
[`v3.21.0`](https://redirect.github.com/tox-dev/filelock/releases/tag/3.21.0)
<!-- Release notes generated using configuration in .github/release.yml
at 3.21.0 -->
#### What's Changed
- 🔧 chore: modernize tooling and bump deps by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#470](https://redirect.github.com/tox-dev/filelock/pull/470)
- ✨ feat(lock): add SQLite-based ReadWriteLock by
[@​leventov](https://redirect.github.com/leventov) in
[tox-dev/filelock#399](https://redirect.github.com/tox-dev/filelock/pull/399)
- Enable removal of UNIX lock files by
[@​sbc100](https://redirect.github.com/sbc100) in
[tox-dev/filelock#408](https://redirect.github.com/tox-dev/filelock/pull/408)
- 👷 ci(release): persist changelog on release by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#471](https://redirect.github.com/tox-dev/filelock/pull/471)
- 👷 ci(release): commit changelog and use release config by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#472](https://redirect.github.com/tox-dev/filelock/pull/472)
#### New Contributors
- [@​leventov](https://redirect.github.com/leventov) made their
first contribution in
[tox-dev/filelock#399](https://redirect.github.com/tox-dev/filelock/pull/399)
- [@​sbc100](https://redirect.github.com/sbc100) made their first
contribution in
[tox-dev/filelock#408](https://redirect.github.com/tox-dev/filelock/pull/408)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/3.20.3...3.21.0>
</details>
<details>
<summary>encode/httpx (httpx)</summary>
###
[`v0.28.1`](https://redirect.github.com/encode/httpx/blob/HEAD/CHANGELOG.md#0281-6th-December-2024)
[Compare
Source](https://redirect.github.com/encode/httpx/compare/0.28.0...0.28.1)
- Fix SSL case where `verify=False` together with client side
certificates.
###
[`v0.28.0`](https://redirect.github.com/encode/httpx/blob/HEAD/CHANGELOG.md#0280-28th-November-2024)
[Compare
Source](https://redirect.github.com/encode/httpx/compare/0.27.2...0.28.0)
Be aware that the default *JSON request bodies now use a more compact
representation*. This is generally considered a prefered style, tho may
require updates to test suites.
The 0.28 release includes a limited set of deprecations...
**Deprecations**:
We are working towards a simplified SSL configuration API.
*For users of the standard `verify=True` or `verify=False` cases, or
`verify=<ssl_context>` case this should require no changes. The
following cases have been deprecated...*
- The `verify` argument as a string argument is now deprecated and will
raise warnings.
- The `cert` argument is now deprecated and will raise warnings.
Our revised [SSL documentation](docs/advanced/ssl.md) covers how to
implement the same behaviour with a more constrained API.
**The following changes are also included**:
- The deprecated `proxies` argument has now been removed.
- The deprecated `app` argument has now been removed.
- JSON request bodies use a compact representation.
([#​3363](https://redirect.github.com/encode/httpx/issues/3363))
- Review URL percent escape sets, based on WHATWG spec.
([#​3371](https://redirect.github.com/encode/httpx/issues/3371),
[#​3373](https://redirect.github.com/encode/httpx/issues/3373))
- Ensure `certifi` and `httpcore` are only imported if required.
([#​3377](https://redirect.github.com/encode/httpx/issues/3377))
- Treat `socks5h` as a valid proxy scheme.
([#​3178](https://redirect.github.com/encode/httpx/issues/3178))
- Cleanup `Request()` method signature in line with `client.request()`
and `httpx.request()`.
([#​3378](https://redirect.github.com/encode/httpx/issues/3378))
- Bugfix: When passing `params={}`, always strictly update rather than
merge with an existing querystring.
([#​3364](https://redirect.github.com/encode/httpx/issues/3364))
</details>
<details>
<summary>python-humanize/humanize (humanize)</summary>
###
[`v4.15.0`](https://redirect.github.com/python-humanize/humanize/releases/tag/4.15.0)
[Compare
Source](https://redirect.github.com/python-humanize/humanize/compare/4.14.0...4.15.0)
#### Added
- Add locale support for decimal separator in `intword`
([#​287](https://redirect.github.com/python-humanize/humanize/issues/287))
[@​hugovk](https://redirect.github.com/hugovk)
- Add support for Python 3.15
([#​275](https://redirect.github.com/python-humanize/humanize/issues/275))
[@​hugovk](https://redirect.github.com/hugovk)
#### Changed
- Replace pre-commit with prek
([#​276](https://redirect.github.com/python-humanize/humanize/issues/276))
[@​hugovk](https://redirect.github.com/hugovk)
#### Fixed
- `naturaldelta`: round the value to nearest unit that makes sense
([#​272](https://redirect.github.com/python-humanize/humanize/issues/272))
[@​dangillet](https://redirect.github.com/dangillet)
- Fix plural form for `intword` and improve performance
([#​273](https://redirect.github.com/python-humanize/humanize/issues/273))
[@​dangillet](https://redirect.github.com/dangillet)
- Replace `Exception` with more specific `FileNotFoundError`
([#​286](https://redirect.github.com/python-humanize/humanize/issues/286))
[@​hugovk](https://redirect.github.com/hugovk)
###
[`v4.14.0`](https://redirect.github.com/python-humanize/humanize/releases/tag/4.14.0)
[Compare
Source](https://redirect.github.com/python-humanize/humanize/compare/4.13.0...4.14.0)
#### Added
- Add Uzbek language
([#​264](https://redirect.github.com/python-humanize/humanize/issues/264))
[@​sSimuSs](https://redirect.github.com/sSimuSs)
#### Changed
- Drop support for Python 3.9
([#​268](https://redirect.github.com/python-humanize/humanize/issues/268))
[@​hugovk](https://redirect.github.com/hugovk)
###
[`v4.13.0`](https://redirect.github.com/python-humanize/humanize/releases/tag/4.13.0)
[Compare
Source](https://redirect.github.com/python-humanize/humanize/compare/4.12.3...4.13.0)
#### Changed
- Optimise `naturalsize` algorithm by using `math.log`
([#​253](https://redirect.github.com/python-humanize/humanize/issues/253))
[@​Zaczero](https://redirect.github.com/Zaczero)
#### Fixed
- Fix `precisedelta` rounding
([#​254](https://redirect.github.com/python-humanize/humanize/issues/254))
[@​dangillet](https://redirect.github.com/dangillet)
###
[`v4.12.3`](https://redirect.github.com/python-humanize/humanize/releases/tag/4.12.3)
[Compare
Source](https://redirect.github.com/python-humanize/humanize/compare/4.12.2...4.12.3)
#### Fixed
- Fix regression in `naturalsize` for `float` and `str`
([#​250](https://redirect.github.com/python-humanize/humanize/issues/250))
[@​loicleyendecker](https://redirect.github.com/loicleyendecker)
- Improvements for French translation
([#​248](https://redirect.github.com/python-humanize/humanize/issues/248))
[@​merwok](https://redirect.github.com/merwok)
###
[`v4.12.2`](https://redirect.github.com/python-humanize/humanize/releases/tag/4.12.2)
[Compare
Source](https://redirect.github.com/python-humanize/humanize/compare/4.12.1...4.12.2)
#### Fixed
- Update license file reference from `LICENSE` to `LICENCE` in
`pyproject.toml`
([#​243](https://redirect.github.com/python-humanize/humanize/issues/243))
[@​williamjamir](https://redirect.github.com/williamjamir)
- Update docstring in naturaldelta
([#​242](https://redirect.github.com/python-humanize/humanize/issues/242))
[@​teobucci](https://redirect.github.com/teobucci)
- Ignore `sys.monitoring` warning for Python 3.11 and earlier in
coverage.py config
([#​244](https://redirect.github.com/python-humanize/humanize/issues/244))
[@​hugovk](https://redirect.github.com/hugovk)
###
[`v4.12.1`](https://redirect.github.com/python-humanize/humanize/releases/tag/4.12.1)
[Compare
Source](https://redirect.github.com/python-humanize/humanize/compare/4.12.0...4.12.1)
#### Fixed
- Fix regression in `naturalsize` for float
([#​240](https://redirect.github.com/python-humanize/humanize/issues/240))
[@​hugovk](https://redirect.github.com/hugovk)
###
[`v4.12.0`](https://redirect.github.com/python-humanize/humanize/releases/tag/4.12.0)
[Compare
Source](https://redirect.github.com/python-humanize/humanize/compare/4.11.0...4.12.0)
#### Added
- Add support for Python 3.14 and test PyPy3.11
([#​235](https://redirect.github.com/python-humanize/humanize/issues/235))
[@​hugovk](https://redirect.github.com/hugovk)
- Handle en\_GB and en\_US locale
([#​230](https://redirect.github.com/python-humanize/humanize/issues/230))
[@​dangillet](https://redirect.github.com/dangillet)
- Release to PyPI using Trusted Publishing
([#​213](https://redirect.github.com/python-humanize/humanize/issues/213))
[@​hugovk](https://redirect.github.com/hugovk)
#### Changed
- Defer imports for faster overall import time: 19 ms -> 3 ms
([#​234](https://redirect.github.com/python-humanize/humanize/issues/234),
[#​238](https://redirect.github.com/python-humanize/humanize/issues/238))
[@​hugovk](https://redirect.github.com/hugovk)
- Replace deprecated classifier with licence expression (PEP 639)
([#​236](https://redirect.github.com/python-humanize/humanize/issues/236))
[@​hugovk](https://redirect.github.com/hugovk)
- Lint and test with tox-uv
([#​212](https://redirect.github.com/python-humanize/humanize/issues/212))
[@​hugovk](https://redirect.github.com/hugovk)
#### Fixed
- Fix overflow issue in `naturalsize` with `np.int32` input
([#​218](https://redirect.github.com/python-humanize/humanize/issues/218))
[@​Toprak2](https://redirect.github.com/Toprak2)
- Fix pt\_BR locale
([#​216](https://redirect.github.com/python-humanize/humanize/issues/216))
[@​cuducos](https://redirect.github.com/cuducos)
- Generate translation binaries during release
([#​232](https://redirect.github.com/python-humanize/humanize/issues/232))
[@​hugovk](https://redirect.github.com/hugovk)
</details>
<details>
<summary>python/mypy (mypy)</summary>
###
[`v1.19.1`](https://redirect.github.com/python/mypy/blob/HEAD/CHANGELOG.md#Mypy-1191)
[Compare
Source](https://redirect.github.com/python/mypy/compare/v1.19.0...v1.19.1)
- Fix noncommutative joins with bounded TypeVars (Shantanu, PR
[20345](https://redirect.github.com/python/mypy/pull/20345))
- Respect output format for cached runs by serializing raw errors in
cache metas (Ivan Levkivskyi, PR
[20372](https://redirect.github.com/python/mypy/pull/20372))
- Allow `types.NoneType` in match cases (A5rocks, PR
[20383](https://redirect.github.com/python/mypy/pull/20383))
- Fix mypyc generator regression with empty tuple (BobTheBuidler, PR
[20371](https://redirect.github.com/python/mypy/pull/20371))
- Fix crash involving Unpack-ed TypeVarTuple (Shantanu, PR
[20323](https://redirect.github.com/python/mypy/pull/20323))
- Fix crash on star import of redefinition (Ivan Levkivskyi, PR
[20333](https://redirect.github.com/python/mypy/pull/20333))
- Fix crash on typevar with forward ref used in other module (Ivan
Levkivskyi, PR
[20334](https://redirect.github.com/python/mypy/pull/20334))
- Fail with an explicit error on PyPy (Ivan Levkivskyi, PR
[20389](https://redirect.github.com/python/mypy/pull/20389))
###
[`v1.19.0`](https://redirect.github.com/python/mypy/compare/v1.18.2...v1.19.0)
[Compare
Source](https://redirect.github.com/python/mypy/compare/v1.18.2...v1.19.0)
###
[`v1.18.2`](https://redirect.github.com/python/mypy/blob/HEAD/CHANGELOG.md#Mypy-1182)
[Compare
Source](https://redirect.github.com/python/mypy/compare/v1.18.1...v1.18.2)
- Fix crash on recursive alias (Ivan Levkivskyi, PR
[19845](https://redirect.github.com/python/mypy/pull/19845))
- Add additional guidance for stubtest errors when runtime is
`object.__init__` (Stephen Morton, PR
[19733](https://redirect.github.com/python/mypy/pull/19733))
- Fix handling of None values in f-string expressions in mypyc
(BobTheBuidler, PR
[19846](https://redirect.github.com/python/mypy/pull/19846))
###
[`v1.18.1`](https://redirect.github.com/python/mypy/compare/v1.17.1...v1.18.1)
[Compare
Source](https://redirect.github.com/python/mypy/compare/v1.17.1...v1.18.1)
###
[`v1.17.1`](https://redirect.github.com/python/mypy/blob/HEAD/CHANGELOG.md#Mypy-1171)
[Compare
Source](https://redirect.github.com/python/mypy/compare/v1.17.0...v1.17.1)
- Retain `None` as constraints bottom if no bottoms were provided
(Stanislav Terliakov, PR
[19485](https://redirect.github.com/python/mypy/pull/19485))
- Fix "ignored exception in `hasattr`" in dmypy (Stanislav Terliakov, PR
[19428](https://redirect.github.com/python/mypy/pull/19428))
- Prevent a crash when InitVar is redefined with a method in a subclass
(Stanislav Terliakov, PR
[19453](https://redirect.github.com/python/mypy/pull/19453))
###
[`v1.17.0`](https://redirect.github.com/python/mypy/compare/v1.16.1...v1.17.0)
[Compare
Source](https://redirect.github.com/python/mypy/compare/v1.16.1...v1.17.0)
###
[`v1.16.1`](https://redirect.github.com/python/mypy/compare/v1.16.0...v1.16.1)
[Compare
Source](https://redirect.github.com/python/mypy/compare/v1.16.0...v1.16.1)
###
[`v1.16.0`](https://redirect.github.com/python/mypy/compare/v1.15.0...v1.16.0)
[Compare
Source](https://redirect.github.com/python/mypy/compare/v1.15.0...v1.16.0)
</details>
<details>
<summary>pydata/numexpr (numexpr)</summary>
###
[`v2.14.1`](https://redirect.github.com/pydata/numexpr/blob/HEAD/RELEASE_NOTES.rst#Changes-from-2141-to-2142)
[Compare
Source](https://redirect.github.com/pydata/numexpr/compare/v2.14.0...v2.14.1)
- **Under development.**
###
[`v2.14.0`](https://redirect.github.com/pydata/numexpr/blob/HEAD/RELEASE_NOTES.rst#Changes-from-2140-to-2141)
[Compare
Source](https://redirect.github.com/pydata/numexpr/compare/v2.13.1...v2.14.0)
- Rolled back static typing support to ensure compatibiity with NumPy
1.26.
- Added CI tests for NumPy 1.26
</details>
<details>
<summary>numpy/numpy (numpy)</summary>
###
[`v2.4.2`](https://redirect.github.com/numpy/numpy/compare/v2.4.1...v2.4.2)
[Compare
Source](https://redirect.github.com/numpy/numpy/compare/v2.4.1...v2.4.2)
###
[`v2.4.1`](https://redirect.github.com/numpy/numpy/releases/tag/v2.4.1):
2.4.1 (Jan 10, 2026)
[Compare
Source](https://redirect.github.com/numpy/numpy/compare/v2.4.0...v2.4.1)
##### NumPy 2.4.1 Release Notes
The NumPy 2.4.1 is a patch release that fixes bugs discoved after the
2.4.0 release. In particular, the typo `SeedlessSequence` is preserved
to
enable wheels using the random Cython API and built against NumPy <
2.4.0
to run without errors.
This release supports Python versions 3.11-3.14
##### Contributors
A total of 9 people contributed to this release. People with a "+" by
their
names contributed a patch for the first time.
- Alexander Shadchin
- Bill Tompkins +
- Charles Harris
- Joren Hammudoglu
- Marten van Kerkwijk
- Nathan Goldbaum
- Raghuveer Devulapalli
- Ralf Gommers
- Sebastian Berg
##### Pull requests merged
A total of 15 pull requests were merged for this release.
- [#​30490](https://redirect.github.com/numpy/numpy/pull/30490):
MAINT: Prepare 2.4.x for further development
- [#​30503](https://redirect.github.com/numpy/numpy/pull/30503):
DOC: `numpy.select`: fix `default` parameter docstring...
- [#​30504](https://redirect.github.com/numpy/numpy/pull/30504):
REV: Revert part of
[#​30164](https://redirect.github.com/numpy/numpy/issues/30164)
([#​30500](https://redirect.github.com/numpy/numpy/issues/30500))
- [#​30506](https://redirect.github.com/numpy/numpy/pull/30506):
TYP: `numpy.select`: allow passing array-like `default`...
- [#​30507](https://redirect.github.com/numpy/numpy/pull/30507):
MNT: use if constexpr for compile-time branch selection
- [#​30513](https://redirect.github.com/numpy/numpy/pull/30513):
BUG: Fix leak in flat assignment iterator
- [#​30516](https://redirect.github.com/numpy/numpy/pull/30516):
BUG: fix heap overflow in fixed-width string multiply
([#​30511](https://redirect.github.com/numpy/numpy/issues/30511))
- [#​30523](https://redirect.github.com/numpy/numpy/pull/30523):
BUG: Ensure summed weights returned by np.average always are...
- [#​30527](https://redirect.github.com/numpy/numpy/pull/30527):
TYP: Fix return type of histogram2d
- [#​30594](https://redirect.github.com/numpy/numpy/pull/30594):
MAINT: avoid passing ints to random functions that take double...
- [#​30595](https://redirect.github.com/numpy/numpy/pull/30595):
BLD: Avoiding conflict with pygit2 for static build
- [#​30596](https://redirect.github.com/numpy/numpy/pull/30596):
MAINT: Fix msvccompiler missing error on FreeBSD
- [#​30608](https://redirect.github.com/numpy/numpy/pull/30608):
BLD: update vendored Meson to 1.9.2
- [#​30620](https://redirect.github.com/numpy/numpy/pull/30620):
ENH: use more fine-grained critical sections in array coercion...
- [#​30623](https://redirect.github.com/numpy/numpy/pull/30623):
BUG: Undo result type change of quantile/percentile but keep...
###
[`v2.4.0`](https://redirect.github.com/numpy/numpy/releases/tag/v2.4.0):
2.4.0 (Dec 20, 2025)
[Compare
Source](https://redirect.github.com/numpy/numpy/compare/v2.3.5...v2.4.0)
##### NumPy 2.4.0 Release Notes
The NumPy 2.4.0 release continues the work to improve free threaded
Python
support, user dtypes implementation, and annotations. There are many
expired
deprecations and bug fixes as well.
This release supports Python versions 3.11-3.14
##### Highlights
Apart from annotations and `same_value` kwarg, the 2.4 highlights are
mostly
of interest to downstream developers. They should help in implementing
new user
dtypes.
- Many annotation improvements. In particular, runtime signature
introspection.
- New `casting` kwarg `'same_value'` for casting by value.
- New `PyUFunc_AddLoopsFromSpec` function that can be used to add user
sort
loops using the `ArrayMethod` API.
- New `__numpy_dtype__` protocol.
##### Deprecations
##### Setting the `strides` attribute is deprecated
Setting the strides attribute is now deprecated since mutating
an array is unsafe if an array is shared, especially by multiple
threads. As an alternative, you can create a new view (no copy) via:
- `np.lib.stride_tricks.strided_window_view` if applicable,
- `np.lib.stride_tricks.as_strided` for the general case,
- or the `np.ndarray` constructor (`buffer` is the original array) for a
light-weight version.
([gh-28925](https://redirect.github.com/numpy/numpy/pull/28925))
##### Positional `out` argument to `np.maximum`, `np.minimum` is
deprecated
Passing the output array `out` positionally to `numpy.maximum` and
`numpy.minimum` is deprecated. For example, `np.maximum(a, b, c)` will
emit
a deprecation warning, since `c` is treated as the output buffer rather
than
a third input.
Always pass the output with the keyword form, e.g. `np.maximum(a, b,
out=c)`.
This makes intent clear and simplifies type annotations.
([gh-29052](https://redirect.github.com/numpy/numpy/pull/29052))
##### `align=` must be passed as boolean to `np.dtype()`
When creating a new `dtype` a `VisibleDeprecationWarning` will be given
if
`align=` is not a boolean. This is mainly to prevent accidentally
passing a
subarray align flag where it has no effect, such as `np.dtype("f8", 3)`
instead of `np.dtype(("f8", 3))`. We strongly suggest to always pass
`align=` as a keyword argument.
([gh-29301](https://redirect.github.com/numpy/numpy/pull/29301))
##### Assertion and warning control utilities are deprecated
`np.testing.assert_warns` and `np.testing.suppress_warnings` are
deprecated. Use `warnings.catch_warnings`, `warnings.filterwarnings`,
`pytest.warns`, or `pytest.filterwarnings` instead.
([gh-29550](https://redirect.github.com/numpy/numpy/pull/29550))
##### `np.fix` is pending deprecation
The `numpy.fix` function will be deprecated in a future release. It is
recommended to use `numpy.trunc` instead, as it provides the same
functionality of truncating decimal values to their integer parts.
Static type
checkers might already report a warning for the use of `numpy.fix`.
([gh-30168](https://redirect.github.com/numpy/numpy/pull/30168))
##### in-place modification of `ndarray.shape` is pending deprecation
Setting the `ndarray.shape` attribute directly will be deprecated in a
future
release. Instead of modifying the shape in place, it is recommended to
use the
`numpy.reshape` function. Static type checkers might already report a
warning for assignments to `ndarray.shape`.
([gh-30282](https://redirect.github.com/numpy/numpy/pull/30282))
##### Deprecation of `numpy.lib.user_array.container`
The `numpy.lib.user_array.container` class is deprecated and will be
removed
in a future version.
([gh-30284](https://redirect.github.com/numpy/numpy/pull/30284))
##### Expired deprecations
##### Removed deprecated `MachAr` runtime discovery mechanism.
([gh-29836](https://redirect.github.com/numpy/numpy/pull/29836))
##### Raise `TypeError` on attempt to convert array with `ndim > 0` to
scalar
Conversion of an array with `ndim > 0` to a scalar was deprecated in
NumPy
1.25. Now, attempting to do so raises `TypeError`. Ensure you extract a
single element from your array before performing this operation.
([gh-29841](https://redirect.github.com/numpy/numpy/pull/29841))
##### Removed numpy.linalg.linalg and numpy.fft.helper
The following were deprecated in Nu
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Theo Pascoli <theo.pascoli@rte-france.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This avoids leaving orphan locks files around after we are done when them.
See emscripten-core/emscripten#24035
Fixes: #31